import request from '@/utils/request'

/**
 * 获取所有商品分类
 */
export function getCategoryList() {
  return request({
    url: '/categories',
    method: 'get'
  })
}

/**
 * 获取分类详情
 * @param id 分类ID
 */
export function getCategoryDetail(id) {
  return request({
    url: `/categories/${id}`,
    method: 'get'
  })
}

/**
 * 获取分类树
 */
export function getCategoryTree() {
  return request({
    url: '/categories/tree',
    method: 'get'
  })
}

/**
 * 获取顶级分类
 */
export function getTopLevelCategories() {
  return request({
    url: '/categories/top-level',
    method: 'get'
  })
}

/**
 * 获取分类下的商品数量
 * @param categoryId 分类ID
 */
export function getCategoryProductCount(categoryId) {
  return request({
    url: `/categories/${categoryId}/product-count`,
    method: 'get'
  })
}

/**
 * 创建分类（管理员）
 * @param categoryData 分类数据
 */
export function createCategory(categoryData) {
  return request({
    url: '/categories',
    method: 'post',
    data: categoryData
  })
}

/**
 * 更新分类（管理员）
 * @param categoryId 分类ID
 * @param categoryData 分类数据
 */
export function updateCategory(categoryId, categoryData) {
  return request({
    url: `/categories/${categoryId}`,
    method: 'put',
    data: categoryData
  })
}

/**
 * 删除分类（管理员）
 * @param categoryId 分类ID
 */
export function deleteCategory(categoryId) {
  return request({
    url: `/categories/${categoryId}`,
    method: 'delete'
  })
}

/**
 * 检查分类名称是否存在
 * @param categoryName 分类名称
 * @param excludeId 排除的ID
 */
export function checkCategoryName(categoryName, excludeId) {
  return request({
    url: '/categories/check-name',
    method: 'get',
    params: { categoryName, excludeId }
  })
}